package leetcode;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class Day28 {
    /*
    * 最长数队链
    * */
    public int findLongestChain(int[][] pairs) {
        Arrays.sort(pairs,(a, b)->a[0]-b[0]);
        int n=pairs.length;
        int[] dp=new int[n];
        for(int i=0;i<n;i++){
            dp[i]=1;
        }
        int max=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<i;j++){
                if(pairs[j][1]<pairs[i][0]){
                    dp[i]=Math.max(dp[i],dp[j]+1);
                }
            }
            if(dp[i]>max){
                max=dp[i];
            }
        }
        return max;
    }
    /*
    * 最长定差子序列
    * */
    public int longestSubsequence(int[] arr, int difference) {
        Map<Integer,Integer> map=new HashMap<>();
        int max=0;
        for(int x:arr){
            map.put(x,map.getOrDefault(x-difference,0)+1);
            max=Math.max(map.get(x),max);
        }
        return max;
    }
}
